package main

import (
	"encoding/json"
	"fmt"
)

type Chef struct {
	Name string	//首字母大写的变量，则说明这个变量是可以导出的
	Age int
}

func main() {
	chef := Chef{
		Name: "小明",
		Age : 18,
	}

	/**
		结构体转json
	 */
	marshal,err := json.Marshal(chef) //调用json转换方法
	if err!=nil {
		fmt.Println(err)
	}
	fmt.Println(string(marshal))	//转换成string，否则默认是[]unit类型

	/**
		json转结构体
	 */
	var myChef Chef
	s := `{"Name":"小明","Age":10}`	//注意这里字符串的``号
	fmt.Printf("type=%T\n",s)
	err2 := json.Unmarshal([]byte(s),&myChef)
	if err2!=nil {
		fmt.Println(err2)
	}
	fmt.Println(myChef)
}